perm filename SEER.SAI[4,ALS]1 blob
sn#052853 filedate 1973-07-09 generic text, type T, neo UTF8
00010 BEGIN "SEE"
00020 DEFINE ⊂="COMMENT"; ⊂ 7,2,73;
00030
00040 ⊂ This program analyses RES.DAT and USE.DAT tables
00050 and reports on their contents;
00060
00070 DEFINE TABSIZ="256",TABNUM="16";
00080 DEFINE CR="'15",LF="'12",TB="'11",CRLF="CR&LF";
00090 REQUIRE "BLOCKS.HDR" SOURCE_FILE;
00100 INTEGER CHAN1,CHAN2,CHAN3,EOF,MAX,ZEROC;
00110 INTEGER ARRAY RES,LRN[0:TABSIZ];
00120 INTEGER X1,X2,X3,X4,S1,S2,S3,S4,S1F,S2F,S3F,S4F,I,J,K,
00130 S1T,S2T,S3T,S4T,OLD,NEW,SUM,F1,F2,F3,F4,T1,T2,T3,T4;
00135 STRING READ1,READ2;
00140
00150 HEADIN;
00160 CHAN1←1; CHAN2←2; CHAN3←3;
00170 CLOSE(CHAN1); OPEN(CHAN1,"DSK",'10,10,0,0,0,EOF);
00180 LOOKUP(CHAN1,"LRN.DAT",0);
00190 CLOSE(CHAN2); OPEN(CHAN2,"DSK",'10,10,0,0,0,EOF);
00200 LOOKUP(CHAN2,"RES.DAT",0);
00210
00220 OPEN(CHAN3,"DSK",0,0,10,0,0,EOF);
00230 ENTER(CHAN3,"SEESUM.DOC",0);
00231 OUT(CHAN3,TB&"SIGNATURE TABLE SUMMARY as of "&DATIME&CRLF&LF);
00233
00234 OUT(CHAN3,CRLF&"The following tables exist"&CRLF);
00235 OUT(CHAN3,"Name"&TB&"Parent"&TB&"OUT1"&TB&"OUT2"&TB&"OUT3"&TB&"OUT4"&
00236 TB&"IN1"&TB&"IN2"&TB&"IN3"&TB&"IN4"&CRLF);
00237 FOR I←0 STEP 1 UNTIL TABNUM DO BEGIN
00238 IF NAMES[I]=0 THEN DONE;
00239 J←(IN1[I] LAND '77);K←(IN2[I] LAND '77);
00240 IF (IN3[I]=0) THEN READ1←" "
00241 ELSE READ1←CVXSTR(INNAM[IN3[I] LAND '77]);
00242 IF (IN4[I]=0) THEN READ2←" " ELSE
00243 READ2←CVXSTR(INNAM[IN4[I] LAND '77]);
00244 OUT(CHAN3,CVXSTR(NAMES[I])&TB&CVXSTR(PARENN[I])&TB&
00245 CVXSTR(OUT1[I])&TB&CVXSTR(OUT2[I])&TB&CVXSTR(OUT3[I])&
00246 TB&CVXSTR(OUT4[I])&TB&CVXSTR(INNAM[J])&TB&CVXSTR(INNAM[K])&TB
00247 &READ1&TB&READ2&CRLF); END; OUT(CHAN3,LF);
00248
00250 OUT(CHAN3,CRLF&"Name"&TB&"Out1 Find Tare Total Out2 "&
00260 "Find Tare Total Out3 Find Tare Total Out4 "&
00280 "Find Tare Total Max."&TB&"Zeros"&CRLF&LF);
00290
00300 FOR I←0 STEP 1 UNTIL TABNUM DO BEGIN
00310 IF NAMES[I]=0 THEN DONE;
00320 ARRYIN(CHAN1,LRN[0],TABSIZ);
00330 ARRYIN(CHAN2,RES[0],TABSIZ);
00340 S1←S2←S3←S4←S1F←S2F←0; S3F←S4F←S1T←S2T←S3T←S4T←0;
00350 X1←X2←X3←X4←MAX←ZEROC←0;
00360 FOR J←0 STEP 1 UNTIL 255 DO BEGIN
00370 OLD←LDB(POINT(9,RES[J],8)); NEW←LDB(POINT(9,LRN[J],8));
00380 X1←(OLD LSH 5)+NEW; S1←S1+X1;
00390 OLD←LDB(POINT(9,RES[J],17)); NEW←LDB(POINT(9,LRN[J],17));
00400 X2←(OLD LSH 5)+NEW;S2←S2+X2;
00410 OLD←LDB(POINT(9,RES[J],26)); NEW←LDB(POINT(9,LRN[J],26));
00420 X3←(OLD LSH 5)+NEW; S3←S3+X3;
00430 OLD←LDB(POINT(9,RES[J],35)); NEW←LDB(POINT(9,LRN[J],35));
00440 X4←(OLD LSH 5)+NEW; S4←S4+X4;
00450
00451
00452 K←X1+X2+X3+X4;IF K=0 THEN ZEROC←ZEROC+1;IF K>MAX THEN MAX←K;
00453
00460 IF X1>X2 THEN BEGIN "X1X2"
00470 IF X1>X3 THEN IF X1>X4 THEN BEGIN
00480 S1F←S1F+X1; S1T←S1T+X2+X3+X4; END ELSE BEGIN
00490 S4F←S4F+X4; S4T←S4T+X1+X3+X4;END;
00500 IF X3≥X1 THEN IF X3>X4 THEN BEGIN
00510 S3F←S3F+X3; S3T←S3T+S1+S2+S4; END ELSE BEGIN
00520 S4F←S4F+X4; S4T←S4T+X1+X2+X3; END; END "X1X2";
00530 IF X2≥X1 THEN BEGIN "X2X1"
00540 IF X2>X3 THEN IF X2>X4 THEN BEGIN
00550 S2F←S2F+X2; S2T←S2T+X1+X3+X4; END ELSE BEGIN
00560 S4F←S4F+X4; S4T←S4T+X1+X2+X3; END;
00570 IF X3≥X2 THEN IF X3>X4 THEN BEGIN
00580 S3F←S3F+X3; S3T←S3T+X1+X2+X4; END ELSE BEGIN
00590 S4F←S4F+X4; S4T←S4T+X1+X2+X3; END; END "X2X1";
00600 END;
00610 F1←(S1F*100)/S1; F2←(S2F*100)/S2; F3←(S3F*100)/S3; F4←(S4F*100)/S4;
00620 T1←(S1T*100)/(S1F+S1T); T2←(S2T*100)/(S2F+S2T);
00630 T3←(S3T*100)/(S3F+S3T); T4←(S4T*100)/(S4F+S4T);
00640
00645 SETFORMAT(2,0);
00650 OUT(CHAN3,CVXSTR(NAMES[I])&TB&
00660 CVXSTR(OUT1[I])&TB&CVS(F1)&" "&CVS(T1));
00662 SETFORMAT(7,0); OUT(CHAN3,CVS(S1)&TB); SETFORMAT(2,0);
00670 OUT(CHAN3,CVXSTR(OUT2[I])&TB&CVS(F2)&" "&CVS(T2));
00672 SETFORMAT(7,0); OUT(CHAN3,CVS(S2)&TB); SETFORMAT(2,0);
00676 IF OUT3[I]=0 THEN OUT(CHAN3,TB&" "&TB) ELSE BEGIN
00680 OUT(CHAN3,CVXSTR(OUT3[I])&TB&CVS(F3)&" "&CVS(T3));
00682 SETFORMAT(7,0); OUT(CHAN3,CVS(S3)&TB); SETFORMAT(2,0); END;
00685 IF OUT4[I]=0 THEN OUT(CHAN3,TB&" "&TB) ELSE BEGIN
00688 OUT(CHAN3,CVXSTR(OUT4[I])&TB&CVS(F4)&" "&CVS(T4));
00690 SETFORMAT(7,0); OUT(CHAN3,CVS(S4)&TB); END;
00691 SETFORMAT(4,0);
00695 OUT(CHAN3,CVS(MAX)&TB&CVS(ZEROC)&CRLF);
00700 END;
00710 CLOSE(CHAN3); CLOSE(CHAN1); CLOSE(CHAN2); RELEASE(CHAN3);
00720 SPOOL("SEESUM.DOC",GETCHAN,1);
00730 OUTSTR("Output sent to spooler as SEESUM.DOC"&CRLF);
00740
00750 END "SEE";